/**
 * 用户中心公共JavaScript
 */

// 用户中心命名空间
window.UserCenter = {
    // 初始化
    init() {
        this.bindEvents();
        this.updateUserInfo();
        this.requireLogin();
    },

    // 强制检查登录状态
    requireLogin() {
        // 检查全局用户状态
        if (!window.userState || !window.userState.isLogin) {
            // 未登录，跳转到登录页
            const currentUrl = encodeURIComponent(window.location.pathname + window.location.search);
            window.location.href = `/user/login?redirect=${currentUrl}`;
            return false;
        }

        // 验证用户ID是否有效
        if (!window.userState.userId) {
            // 用户信息无效，尝试重新获取
            window.userState.fetchUserInfo();
            
            // 如果仍然无效，跳转到登录页
            if (!window.userState.isLogin) {
                const currentUrl = encodeURIComponent(window.location.pathname + window.location.search);
                window.location.href = `/user/login?redirect=${currentUrl}`;
                return false;
            }
        }

        return true;
    },

    // 绑定事件
    bindEvents() {
        // 快速操作点击统计
        $('.grid a[href^="/user/"]').on('click', function() {
            const actionName = $(this).find('span').text();
            console.log('Quick action clicked:', actionName);
        });

        // 监听用户状态更新事件
        $(document).on('userStateUpdated', (event, userState) => {
            if (userState.isLogin) {
                this.updateUserInfo(userState.userInfo);
            } else {
                // 如果在用户中心页面检测到未登录状态，则重定向到登录页
                const currentUrl = encodeURIComponent(window.location.pathname + window.location.search);
                window.location.href = `/user/login?redirect=${currentUrl}`;
            }
        });
    },

    // 更新用户信息显示
    updateUserInfo(userInfo = null) {
        if (!userInfo && window.userState && window.userState.userInfo) {
            userInfo = window.userState.userInfo;
        }

        if (!userInfo) {
            return;
        }

        // 更新侧边栏用户信息
        $('#sidebar-username').text(userInfo.username || '用户');
        $('#sidebar-email').text(userInfo.email || '');

        // 更新页面中的用户信息
        $('.user-username').text(userInfo.username || '用户');
        $('.user-email').text(userInfo.email || '');
        $('.user-points').text(userInfo.points || 0);
    },

    // 刷新统计数据
    refreshStats() {
        console.log('Refreshing stats...');
        // 这里可以通过AJAX刷新统计数据
    },

    // 快速签到
    quickSign() {
        axios.post('/user/doSign')
            .then(response => {
                if (response.data.code === 1) {
                    showSuccess('签到成功！');
                    setTimeout(() => location.reload(), 1500);
                } else {
                    showError(response.data.msg || '签到失败');
                }
            })
            .catch(() => {
                showError('网络错误');
            });
    }
};

// 页面加载完成后初始化
$(document).ready(function() {
    UserCenter.init();
});
